<?php

require_once 'model/LoginHandler.php';
require_once 'model/UserHandler.php';
require_once 'view/LoginView.php';
require_once 'view/RegistrerView.php';
require_once 'view/TextStringOutput.php';


class LoginController {

	private $m_loginHandler;
	private $m_userHandler;

	public function __construct(LoginHandler $a_loginHandler, UserHandler $a_userHandler) {
		$this -> m_loginHandler = $a_loginHandler;
		$this -> m_userHandler = $a_userHandler;
	}

	public function DoControll() {
		//hantera indata
		//förändra modellen

		$string = "";
		//Ny instanser
		$loginView = new LoginView();
		$registrerView = new RegistrerView();
		$textStringOutput = new TextStringOutput();
		
		//Om jag inte är inloggad...
		if ($this ->m_loginHandler ->IsLoggedIn() ==FALSE) {
			//Om jag försöker att logga in...	
			if ($loginView -> TriedToLogin() == TRUE) {
				//Gör loggin och ta UserName och Password	
				if ($this -> m_loginHandler -> DoLogin($loginView -> GetUserName(), $loginView -> GetPassword())) {
					//Sätter Cookien	
					$string .= $loginView -> RememberMeAndSetCookie();
					
				} else {
					//Skriver ut fel användare eller lösen	
					$string = TextStringOutput::WrongUser;	
				}
			}
		}else{
			if($loginView -> TriedToLogOut() == TRUE){
				$this -> m_loginHandler -> DoLogout();
				//Skriver utloggad
				$string = TextStringOutput::LoggedOut;
				//Tar bort Cookies
				$loginView ->DeleteCookie();
			}
		} 
		
		// Om Deleteknappen blir sann
		if ($loginView ->TriedToDelete()==TRUE){
				$userName = $this ->m_loginHandler ->GetLoggedInUserName();
				$this->m_userHandler->DeleteUser($userName);
				$this ->m_loginHandler ->DoLogout();
				$loginView ->DeleteCookie();
				$string = TextStringOutput::RaderatKonto;
		}


		//------------------Utdata------------------------------
		
		//Inloggad
		if ($this -> m_loginHandler -> IsLoggedIn()) {
			//Skriver Inloggad och visar lösenord	
			if(isset($_POST[LoginView::UserName])) {
				$string .=  TextStringOutput::Inloggad . TextStringOutput::Welcome . $_POST[LoginView::UserName];
			}
			
			// Om cookien är satt och kommer tillbaka
			if(isset($_COOKIE[LoginView::CookieName])) {
				$string .= TextStringOutput::WelcomeBack . $_COOKIE[LoginView::CookieName];
			}
			// Gör logoutknappen
			$string .= $loginView -> DoLogoutBox();
		}
	   //Annars utloggad
	   else {
			$string .= $loginView -> DoLoginBox();
			 //Skriver utloggad
			 $string .= TextStringOutput::Utloggad;
			}
		return $string;

	}

}
